package gptma.bo.search;

import gptma.bo.model.employee.Employee;
import gptma.bo.model.project.Project;

import java.io.Serializable;
import java.util.List;

// TODO: handle task state criteria
public class TaskSearchCriteria implements Serializable {

	private static final long serialVersionUID = -8642089184728893140L;

	private String code;

	private String label;

	private List<Project> projects;

	private List<Employee> employees;

	private String clientRequestReference;

	private Boolean administrative;

	/**
	 * @return the code
	 */
	public String getCode() {
		return code;
	}

	/**
	 * @param code
	 *            the code to set
	 */
	public void setCode(String code) {
		this.code = code;
	}

	/**
	 * @return the label
	 */
	public String getLabel() {
		return label;
	}

	/**
	 * @param label
	 *            the label to set
	 */
	public void setLabel(String label) {
		this.label = label;
	}

	/**
	 * @return the projects
	 */
	public List<Project> getProjects() {
		return projects;
	}

	/**
	 * @param projects
	 *            the projects to set
	 */
	public void setProjects(List<Project> projects) {
		this.projects = projects;
	}

	/**
	 * @return the employees
	 */
	public List<Employee> getEmployees() {
		return employees;
	}

	/**
	 * @param employees
	 *            the employees to set
	 */
	public void setEmployees(List<Employee> employees) {
		this.employees = employees;
	}

	/**
	 * @return the clientRequestReference
	 */
	public String getClientRequestReference() {
		return clientRequestReference;
	}

	/**
	 * @param clientRequestReference
	 *            the clientRequestReference to set
	 */
	public void setClientRequestReference(String clientRequestReference) {
		this.clientRequestReference = clientRequestReference;
	}

	/**
	 * @return the administrative
	 */
	public Boolean getAdministrative() {
		return administrative;
	}

	/**
	 * @param administrative
	 *            the administrative to set
	 */
	public void setAdministrative(Boolean administrative) {
		this.administrative = administrative;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return new StringBuilder("TaskSearchCriteria[code=").append(code)
				.append(", label=").append(label).append(", code=")
				.append(code).append(", projects=").append(projects)
				.append(", employees=").append(employees)
				.append(", clientRequestReference=")
				.append(clientRequestReference).append(", administrative=")
				.append(administrative).append("]").toString();
	}

}
